package com.itheima.mp.domain.po;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.itheima.mp.domain.enums.UserStatus;
import lombok.Data;

import java.time.LocalDateTime;

//将类名第一个字母小写,作为表名
@Data
@TableName(value = "user", autoResultMap = true)// 开启自动映射
//@TableName(value = "user")// 开启自动映射
public class User {

//    /*public static final Integer STATUS_NORMAL = 1;
//    public static final Integer STATUS_FREEZE = 2;*/
    /**
     * 用户id
     * IdType.AUTO 根据表中的主键的字段目前自增到的最大值进行自增
     * IdType.INPUT 手动输入, 一般是自行指定(避免重复提价: 就是前端看客户反复点击提交, 会先生成一个id传递给前端, 如果再次提交, id是一样的就不可以重复)
     * IdType.ASSIGN_ID 雪花算法; 生成数据字符串
     */
    //找实体类中id的属性, 就叫做主键
//    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户名
     */
    @TableField("username")
    private String username;

    /**
     * 密码
     */
    private String password;

    /**
     * 注册手机号
     */
    private String phone;

    /**
     * 详细信息
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
//    private UserInfo info;
    private UserInfo info;

    /**
     * 使用状态（1正常 2冻结）
     */
    private UserStatus status;

    /**
     * 账户余额
     */
    private Integer balance;

    /**
     * 创建时间
     * exist = false 表是数据库中的字段不存在 , 忽略它
     */
//    @TableField(value = "create_time", exist = false)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}
